//配置axios的全局基本路径
axios.defaults.baseURL='http://localhost:8080/'

// 使用前提，要发送axios请求的页面，都要引入common.js
/*
* axios前置拦截器
*  作用：每次发送axios请求，需要把token给后端
* */
axios.interceptors.request.use(config=>{
    //携带token
    let uToken =  localStorage.getItem("token");
    if(uToken){
        config.headers['token']=uToken;
    }
    return config; // 这里一定要返回配置
},error => {
    Promise.reject(error);
})

/*
* axios后置拦截器
*   作用：后端ajax请求，报错，在这里处理
* */
axios.interceptors.response.use(result=>{
    let data = result.data;
    if(!data.success && data.message==="noLogin"){
        localStorage.removeItem('token');
        localStorage.removeItem('loginInfo');
        location.href = "/login.html";
    }
    return result;
},error => {
    Promise.reject(error);
})

//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios

// js拦截器
let uri = location.href // 拿到地址栏地址
// 这里不等于-1表示不是以它结尾
if (uri.indexOf("/login.html") == -1 && uri.indexOf("/register.html") == -1
    && uri.indexOf("/") == -1 && uri.indexOf("/index.html") == -1
    && uri.indexOf("/callback.html") == -1 && uri.indexOf("/binder.html") == -1){
    let loginObj = localStorage.getItem('loginInfo');
    if (!loginObj){
        location.href = "/login.html";
    }
}

/**
 * 解析url获取参数对象
 * @param url
 * @returns {{}}
 */
function parseUrlParams2Obj(url){
    //获取请求参数
    let paramStr = url.substring(url.indexOf("?")+1);//code=021FdXFa14mYlA016OGa1L3R4X0FdXFO&state=1
    let paramStrs = paramStr.split("&");//[code=021FdXFa14mYlA016OGa1L3R4X0FdXFO,state=1]
    let paramObj = {};
    for(let i=0;i<paramStrs.length;i++){
        let paramName = paramStrs[i].split("=")[0];//code
        let paramValue = paramStrs[i].split("=")[1];//021FdXFa14mYlA016OGa1L3R4X0FdXFO
        paramObj[paramName] = paramValue;
    }
    return paramObj;
}